10 : SYS 36864 15 : .OPT OO 20 : *=$C000 25 :; 30 LISTEN = $FFB1 35 SECOND = $FF93 40 IECOUT = $FFA8 45 UNLSTN = $FFAE 50 DISKNAME = $0480 55 CHROUT = $FFD2 60 CINT = $E518 65 CHRIN = $FFCF 70 GET = $FFE4 75 IECIN = $FFA5 80 TALK = $FFB4 85 UNTALK = $FFAB 90 TALKSA = $FF96 95 PLOT = $FFF0 100 :; 105 :; 110 :;****** BILDSCHIRMAUFBAU ******* 115 :; 120 MENU LDX #0 125 : LDA #32 130 CLRNAME STA NAME,X 135 : INX 140 : CPX #16 145 : BCC CLRNAME 150 : STA ID1+1 155 : STA ID1+2 160 : JSR CINT 165 : LDA #0 170 : STA 53280 175 : STA 53281 180 : LDA #<(SCREEN) 185 : STA $FB 190 : LDA #>(SCREEN) 195 : STA $FC 200 : LDY #0 205 OUTPUT1 LDA ($FB),Y 210 : JSR CHROUT 215 : INY 220 : BNE CHKEND 225 : INC $FC 230 CHKEND CMP #160 235 : BNE OUTPUT1 240 : LDX #$FF 245 INPUT1 JSR CHRIN 250 : CMP #13 255 : BEQ (null)TNAME 260 : INX 265 : CPX #16 270 : BCS INPUT1 275 : STA NAME,X 280 : BCC INPUT1 285 (null)TNAME LDY #0 290 OUTPUT2 LDA ID2,Y 295 : JSR CHROUT 300 : INY 305 : CMP #160 310 : BNE OUTPUT2 315 : LDX #$FF 320 INPUT2 JSR CHRIN 325 : CMP #13 330 : BEQ START 335 : INX 340 : CPX #2 345 : BCS INPUT2 350 : STA ID1+1,X 355 : BCC INPUT2 360 START LDA #<(FRMTRACK) 365 : STA $FB 370 : LDA #>(FRMTRACK) 375 : STA $FC 380 : LDA #<(BUFFERWRT) 385 : STA $FD 390 : LDA #>(BUFFERWRT) 395 : STA $FE 400 : LDA #$0A 405 : STA $57 410 : LDA #$04 415 : STA $58 420 : JSR BUFFERWRT 425 : LDA #0 430 : STA $90 435 : LDA #8 440 : JSR LISTEN 445 : LDA #$6F 450 : JSR SECOND 455 : LDA $90 460 : BMI DEVERR 465 : JSR UNLSTN 470 : LDA #8 475 : JSR TALK 480 : LDA #$6F 485 : JSR TALKSA 490 : LDX #0 495 ERRIN JSR IECIN 500 : STA $0200,X 505 : INX 510 : CMP #13 515 : BNE ERRIN 520 : JSR UNTALK 525 : LDA $0200 530 : CMP #"0" 535 : BNE ERROR 540 : LDA $0201 545 : CMP #"0" 550 : BNE ERROR 555 : JMP MENU 560 :; 565 DEVERR LDX #$FF 570 DEV INX 575 : LDA $A1D0,X 580 : STA $0200,X 585 : BPL DEV 590 : AND #$7F 595 : STA $0200,X 600 : INX 605 : LDA #13 610 : STA $0200,X 615 ERROR INC 199 620 : STX 2 625 : LDX #20 630 : LDA #40 635 : SEC 640 : SBC 2 645 : LSR 650 : TAY 655 : CLC 660 : JSR PLOT 665 : LDX #0 670 ERROUT LDA $0200,X 675 : JSR CHROUT 680 : INX 685 : CMP #13 690 : BNE ERROUT 695 : LSR 199 700 INKEY JSR GET 705 : BEQ INKEY 710 : JMP MENU 715 :; 720 :;****** FORMAT-IRQPROGRAMM ****** 725 :; 730 FRMTRACK LDA $1C00 735 : AND #$10 740 : BNE DISKREADY 745 : LDA #8 750 : JMP $F969 755 DISKREADY LDA $1C0C 760 : AND #$1F 765 : ORA #$C0 770 : STA $1C0C 775 : LDA #$FF 780 : STA $1C03 785 : LDA #$55 790 : STA $1C01 795 : LDA $06 800 : JSR $F24B 805 : STA $43 810 : LDY #0 815 : STY $07 820 SETHEADER LDA #8 825 : STA $0700,Y 830 : INY 835 : LDA #0 840 : EOR $07 845 : EOR $06 850 : EOR $13 855 : EOR $12 860 : STA $0700,Y 865 : INY 870 : LDA $07 875 : STA $0700,Y 880 : INY 885 : LDA $06 890 : STA $0700,Y 895 : INY 900 : LDA $13 905 : STA $0700,Y 910 : INY 915 : LDA $12 920 : STA $0700,Y 925 : INY 930 : LDA #$0F 935 : STA $0700,Y 940 : INY 945 : STA $0700,Y 950 : INY 955 : INC $07 960 : LDA $07 965 : CMP $43 970 : BCC SETHEADER 975 : TYA:PHA 980 : LDA #7 985 : STA $31 990 : JSR $FE30 995 : PLA:TAY 1000 : DEY 1005 MOVEBLK LDA $0700,Y 1010 : STA $0745,Y 1015 : DEY 1020 : BNE MOVEBLK 1025 : LDA $0700 1030 : STA $0745 1035 : LDY #$44 1040 MOVEREST LDA $01BB,Y 1045 : STA ($30),Y 1050 : DEY 1055 : BPL MOVEREST 1060 : LDA #5 1065 : STA $31 1070 : LDA #00 1075 : STA $32 1080 NEXTBLOCK LDA #$FF 1085 : STA $1C01 1090 : LDX #5 1095 SYNC BVC SYNC 1100 : CLV 1105 : DEX 1110 : BNE SYNC 1115 : LDX #$0A 1120 : LDY $32 1125 WRITEHEAD BVC WRITEHEAD 1130 : CLV 1135 : LDA $0700,Y 1140 : STA $1C01 1145 : INY 1150 : DEX 1155 : BNE WRITEHEAD 1160 : LDX #9 1165 : STY $32 1170 HEADERGAP BVC HEADERGAP 1175 : CLV 1180 : LDA #$55 1185 : STA $1C01 1190 : DEX 1195 : BNE HEADERGAP 1200 : LDA #$FF 1205 : LDX #5 1210 BLOCKSYNC BVC BLOCKSYNC 1215 : CLV 1220 : STA $1C01 1225 : DEX 1230 : BNE BLOCKSYNC 1235 : LDX #$BB 1240 WRTBLK1 BVC WRTBLK1 1245 : CLV 1250 : LDA $0600,X 1255 : STA $1C01 1260 : INX 1265 : BNE WRTBLK1 1270 : LDY #$00 1275 WRTBLK2 BVC WRTBLK2 1280 : CLV 1285 : LDA ($30),Y 1290 : STA $1C01 1295 : INY 1300 : BNE WRTBLK2 1305 : LDA #$55 1310 : LDX #9 1315 SECTORGAP BVC SECTORGAP 1320 : CLV 1325 : STA $1C01 1330 : DEX 1335 : BNE SECTORGAP 1340 : DEC $07 1345 : BNE NEXTBLOCK 1350 WAIT BVC WAIT 1355 : CLV 1360 WAIT2 BVC WAIT2 1365 : CLV 1370 : JSR $FE00 1375 : LDA #1 1380 : JMP $F969 1385 :; 1390 :;***** FORMAT-HAUPTPROGRAMM ***** 1395 :; 1400 : LDA #15 1405 : STA $1C07 1410 : JSR $C118 1415 : LDA #$01 1420 : STA $06 1425 : STA $07 1430 : LDA #$C0 1435 : STA $00 1440 BUMP LDA $00 1445 : BMI BUMP 1450 STEPPER LDA $4A 1455 : BMI STEPPER 1460 : LDX #$FF 1465 WRITENAME INX 1470 : LDA DISKNAME,X 1475 : STA $0200,X 1480 : BNE WRITENAME 1485 : LDY #16 1490 : STY $0274 1495 : INY 1500 : LDA $0200,Y 1505 : STA $12 1510 : INY 1515 : LDA $0200,Y 1520 : STA $13 1525 NEXTTRACK LDY #0 1530 : STY $30 1535 : LDA #5 1540 : STA $31 1545 : LDA #$4B 1550 CLRBUFFER STA ($30),Y 1555 : LDA #$01 1560 : INY 1565 : BNE CLRBUFFER 1570 : LDX #0 1575 : JSR $F5E9 1580 : STA $3A 1585 : JSR $F78F 1590 : LDX #$BB 1595 SAVEBUFF LDA $0100,X 1600 : STA $0600,X 1605 : INX 1610 : BNE SAVEBUFF 1615 : LDA #$E0 1620 : STA $00 1625 FORMAT LDA $00 1630 : BMI FORMAT 1635 : CMP #2 1640 : BCC OK 1645 : JMP $E60A 1650 OK INC $06 1655 : LDA $06 1660 : CMP #36 1665 : BCC NEXTTRACK 1670 : JMP $EE40 1675 NAME .ASC " " 1680 ID1 .ASC ", " 1685 : .BYT 0 1690 :; 1695 :;****** FLOPPY-PRG SENDEN ******* 1700 :; 1705 BUFFERWRT LDY #0 1710 : STY $5F 1715 : LDA #3 1720 : STA $60 1725 SENDPRG LDX #30 1730 : LDA #8 1735 : JSR LISTEN 1740 : LDA #$6F 1745 : JSR SECOND 1750 : LDA #"M" 1755 : JSR IECOUT 1760 : LDA #"-" 1765 : JSR IECOUT 1770 : LDA #"W" 1775 : JSR IECOUT 1780 : LDA $5F 1785 : JSR IECOUT 1790 : LDA $60 1795 : JSR IECOUT 1800 : TXA 1805 : JSR IECOUT 1810 SENDPART LDA ($FB),Y 1815 : JSR IECOUT 1820 : INY 1825 : DEX 1830 : BNE SENDPART 1835 : JSR UNLSTN 1840 : CLC 1845 : TYA 1850 : ADC $FB 1855 : STA $FB 1860 : BCC DPOINTER 1865 : INC $FC 1870 DPOINTER CLC 1875 : TYA 1880 : ADC $5F 1885 : STA $5F 1890 : BCC NEXTPART 1895 : INC $60 1900 NEXTPART LDY #0 1905 : LDA $FC 1910 : CMP $FE 1915 : BCC SENDPRG 1920 : BNE EXECUTE 1925 : LDA $FB 1930 : CMP $FD 1935 : BCC SENDPRG 1940 EXECUTE LDA #8 1945 : JSR LISTEN 1950 : LDA #$6F 1955 : JSR SECOND 1960 : LDA #"M" 1965 : JSR IECOUT 1970 : LDA #"-" 1975 : JSR IECOUT 1980 : LDA #"E" 1985 : JSR IECOUT 1990 : LDA $57 1995 : JSR IECOUT 2000 : LDA $58 2005 : JSR IECOUT 2010 : JMP UNLSTN 2015 :; 2020 SCREEN .ASC "[147][155] [176][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][174]" 2025 : .BYT 13 2030 : .ASC " [221] QUICKFORMAT [221]" 2035 : .BYT 13 2040 : .ASC " [221] [221]" 2045 : .BYT 13 2050 : .ASC " [221] WRITTEN IN 1989 [221]" 2055 : .BYT 13 2060 : .ASC " [221] BY MARCEL SOMMERICK [221]" 2065 : .BYT 13 2070 : .ASC " [173][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][189]" 2075 : .BYT 13 2080 : .ASC " DISKNAME:" 2085 : .BYT 160 2090 ID2 .BYT 13 2095 : .ASC " ID:" 2100 : .BYT 160